import { instance } from '@/common/ajax.js'
function uploadImg(url,img,success,data){
	uni.showLoading({
		title: '数据上传中...'
	});
	
	instance.upload(url,img,data).then(res => {
		if (res.code == 200){
			uni.hideLoading();
			success(res.data)
		}else{
			uni.showToast({
				title:res.msg,
				icon:'none'
			})
			uni.hideLoading();
		}
	}).catch(err => {
		uni.showToast({
			title:"图片上传失败",
			icon:'none'
		})
		uni.hideLoading();
	})
}

/**
 * 多图片上传
 * @param {Object} url 上传地址
 * @param {Object} imgs 上传图片列表
 * @param {Object} success 成功后的操作
 * @param {Object} data 附加的参数
 * @param {Object} ckList 不上传的图片地址
 */
function uploadImgs(url,imgs,success,data,ckList){
	let urls=[]
	const promises = imgs.map(function (img) {
		
		let up=true;
		
		if(ckList&&ckList.length>0){
			for(let i=0;i<ckList.length;i++){
				if(img.indexOf(ckList[i])>0){
					up=false;
					break;
				}
			}
		}
		if(up){
			return new Promise((resolve,reject)=>{
				instance.upload(url,img,data).then(res => {
					resolve(res.data)
				}).catch(err => {
					reject(err)
				})
			})
		}else{
			return new Promise((resolve,reject)=>{
				resolve({url:img,path:img})
			})
		}
	});
	
	uni.showLoading({
		mask:true,
		title:"上传中"
	})
	Promise.all(promises).then(function (urls) {
	    uni.hideLoading()
		success(urls)
	}).catch(function(err){
		console.log(err)
		uni.hideLoading()
		uni.showToast({
			title:"上传失败"
		})
	});
}

/**
 * 多图片下载
 * @param {Object} imgs 下载图片列表
 * @param {Object} success 成功后的操作
 */
function downloadImgs(imgs,success){
	let urls=[]
	const promises = imgs.map(function (img) {
		return new Promise((resolve,reject)=>{
			uni.downloadFile({
				url:img.img,
				success(res) {
					urls.push({id:img.id,img:res.tempFilePath})
					resolve({id:img.id,img:res.tempFilePath})
				},
				fail(err){
					reject(err)
				}
			})
		})
	});
	
	Promise.all(promises).then(function (urls) {
		success(urls)
	}).catch(function(err){
		console.log(err)
	});
}

/**
 * 生成add用文件列表
 * @param {Object} imgList
 */
function makeAddFilesList(imgList){
	let files={};
	if(imgList.length==1){
		files={file1:imgList[0]}
	}else if(imgList.length==2){
		files={file1:imgList[0],file2:imgList[1]}
	}else{
		files={file1:imgList[0],file2:imgList[1],file3:imgList[2]}
	}
	return files;
}

/**
 * 生成update用文件列表
 * @param {Object} imgList
 */
function makeUpdateFilesList(imgList){
	let files={};
	if(imgList.length==1){
		let img1=imgList[0];
		files={file1:img1.indexOf('/static/')>-1?null:img1}
	}else if(imgList.length==2){
		let img1=imgList[0];
		let img2=imgList[1];
		files={file1:img1.indexOf('/static/')>-1?null:img1,file2:img2.indexOf('/static/')>-1?null:img2}
	}else{
		let img1=imgList[0];
		let img2=imgList[1];
		let img3=imgList[2];
		files={file1:img1.indexOf('/static/')>-1?null:img1,file2:img2.indexOf('/static/')>-1?null:img2,file3:img3.indexOf('/static/')>-1?null:img3}
	}
	return files;
}


module.exports = {
	uploadImg,
	uploadImgs,
	downloadImgs,
	makeAddFilesList,
	makeUpdateFilesList,
}